<table class="table table-bordered">
    <thead>
        <tr>
            <th class="text-left" style="width: 20%">Key</th>
            <th class="text-left" style="width: 15%">Default</th>
            <th class="text-left" style="width: 10%">Type</th>
            <th class="text-left" style="width: 55%">Description</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td><h5>taskmanager.memory.framework.heap.size</h5></td>
            <td style="word-wrap: break-word;">"128m"</td>
            <td>String</td>
            <td>Framework Heap Memory size for TaskExecutors. This is the size of JVM heap memory reserved for TaskExecutor framework, which will not be allocated to task slots.</td>
        </tr>
        <tr>
            <td><h5>taskmanager.memory.framework.off-heap.size</h5></td>
            <td style="word-wrap: break-word;">"128m"</td>
            <td>String</td>
            <td>Framework Off-Heap Memory size for TaskExecutors. This is the size of off-heap memory (JVM direct memory or native memory) reserved for TaskExecutor framework, which will not be allocated to task slots. It will be accounted as part of the JVM max direct memory size limit.</td>
        </tr>
        <tr>
            <td><h5>taskmanager.memory.jvm-metaspace.size</h5></td>
            <td style="word-wrap: break-word;">"128m"</td>
            <td>String</td>
            <td>JVM Metaspace Size for the TaskExecutors.</td>
        </tr>
        <tr>
            <td><h5>taskmanager.memory.jvm-overhead.fraction</h5></td>
            <td style="word-wrap: break-word;">0.1</td>
            <td>Float</td>
            <td>Fraction of Total Process Memory to be reserved for JVM Overhead. This is off-heap memory reserved for JVM overhead, such as thread stack space, I/O direct memory, compile cache, etc. The size of JVM Overhead is derived to make up the configured fraction of the Total Process Memory. If the derived size is less/greater than the configured min/max size, the min/max size will be used. The exact size of JVM Overhead can be explicitly specified by setting the min/max size to the same value.</td>
        </tr>
        <tr>
            <td><h5>taskmanager.memory.jvm-overhead.max</h5></td>
            <td style="word-wrap: break-word;">"1g"</td>
            <td>String</td>
            <td>Max JVM Overhead size for the TaskExecutors. This is off-heap memory reserved for JVM overhead, such as thread stack space, I/O direct memory, compile cache, etc. The size of JVM Overhead is derived to make up the configured fraction of the Total Process Memory. If the derived size is less/greater than the configured min/max size, the min/max size will be used. The exact size of JVM Overhead can be explicitly specified by setting the min/max size to the same value.</td>
        </tr>
        <tr>
            <td><h5>taskmanager.memory.jvm-overhead.min</h5></td>
            <td style="word-wrap: break-word;">"128m"</td>
            <td>String</td>
            <td>Min JVM Overhead size for the TaskExecutors. This is off-heap memory reserved for JVM overhead, such as thread stack space, I/O direct memory, compile cache, etc. The size of JVM Overhead is derived to make up the configured fraction of the Total Process Memory. If the derived size is less/greater than the configured min/max size, the min/max size will be used. The exact size of JVM Overhead can be explicitly specified by setting the min/max size to the same value.</td>
        </tr>
        <tr>
            <td><h5>taskmanager.memory.managed.fraction</h5></td>
            <td style="word-wrap: break-word;">0.4</td>
            <td>Float</td>
            <td>Fraction of Total Flink Memory to be used as Managed Memory, if Managed Memory size is not explicitly specified.</td>
        </tr>
        <tr>
            <td><h5>taskmanager.memory.managed.size</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>String</td>
            <td>Managed Memory size for TaskExecutors. This is the size of off-heap memory managed by the memory manager, reserved for sorting, hash tables, caching of intermediate results and RocksDB state backend. Memory consumers can either allocate memory from the memory manager in the form of MemorySegments, or reserve bytes from the memory manager and keep their memory usage within that boundary. If unspecified, it will be derived to make up the configured fraction of the Total Flink Memory.</td>
        </tr>
        <tr>
            <td><h5>taskmanager.memory.segment-size</h5></td>
            <td style="word-wrap: break-word;">"32kb"</td>
            <td>String</td>
            <td>Size of memory buffers used by the network stack and the memory manager.</td>
        </tr>
        <tr>
            <td><h5>taskmanager.memory.shuffle.fraction</h5></td>
            <td style="word-wrap: break-word;">0.1</td>
            <td>Float</td>
            <td>Fraction of Total Flink Memory to be used as Shuffle Memory. Shuffle Memory is off-heap memory reserved for ShuffleEnvironment (e.g., network buffers). Shuffle Memory size is derived to make up the configured fraction of the Total Flink Memory. If the derived size is less/greater than the configured min/max size, the min/max size will be used. The exact size of Shuffle Memory can be explicitly specified by setting the min/max size to the same value.</td>
        </tr>
        <tr>
            <td><h5>taskmanager.memory.shuffle.max</h5></td>
            <td style="word-wrap: break-word;">"1g"</td>
            <td>String</td>
            <td>Max Shuffle Memory size for TaskExecutors. Shuffle Memory is off-heap memory reserved for ShuffleEnvironment (e.g., network buffers). Shuffle Memory size is derived to make up the configured fraction of the Total Flink Memory. If the derived size is less/greater than the configured min/max size, the min/max size will be used. The exact size of Shuffle Memory can be explicitly specified by setting the min/max to the same value.</td>
        </tr>
        <tr>
            <td><h5>taskmanager.memory.shuffle.min</h5></td>
            <td style="word-wrap: break-word;">"64m"</td>
            <td>String</td>
            <td>Min Shuffle Memory size for TaskExecutors. Shuffle Memory is off-heap memory reserved for ShuffleEnvironment (e.g., network buffers). Shuffle Memory size is derived to make up the configured fraction of the Total Flink Memory. If the derived size is less/greater than the configured min/max size, the min/max size will be used. The exact size of Shuffle Memory can be explicitly specified by setting the min/max to the same value.</td>
        </tr>
        <tr>
            <td><h5>taskmanager.memory.task.heap.size</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>String</td>
            <td>Task Heap Memory size for TaskExecutors. This is the size of JVM heap memory reserved for user code. If not specified, it will be derived as Total Flink Memory minus Framework Heap Memory, Task Off-Heap Memory, Managed Memory and Shuffle Memory.</td>
        </tr>
        <tr>
            <td><h5>taskmanager.memory.task.off-heap.size</h5></td>
            <td style="word-wrap: break-word;">"0b"</td>
            <td>String</td>
            <td>Task Heap Memory size for TaskExecutors. This is the size of off heap memory (JVM direct memory or native memory) reserved for user code.</td>
        </tr>
        <tr>
            <td><h5>taskmanager.memory.total-flink.size</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>String</td>
            <td>Total Flink Memory size for the TaskExecutors. This includes all the memory that a TaskExecutor consumes, except for JVM Metaspace and JVM Overhead. It consists of Framework Heap Memory, Task Heap Memory, Task Off-Heap Memory, Managed Memory, and Shuffle Memory.</td>
        </tr>
        <tr>
            <td><h5>taskmanager.memory.total-process.size</h5></td>
            <td style="word-wrap: break-word;">(none)</td>
            <td>String</td>
            <td>Total Process Memory size for the TaskExecutors. This includes all the memory that a TaskExecutor consumes, consisting of Total Flink Memory, JVM Metaspace, and JVM Overhead. On containerized setups, this should be set to the container memory.</td>
        </tr>
    </tbody>
</table>
